package com.tecode.myBooks.product.service;

import com.tecode.myBooks.bean.Page;
import com.tecode.myBooks.product.bean.Code;
import com.tecode.myBooks.product.bean.Product;
import com.tecode.myBooks.product.dao.ProductDao;

import java.util.List;

/**
 * Created by Administrator on 2018/11/28.
 *
 * 处理商品相关的业务层
 */
public class ProductService {



   private ProductDao productDao = new ProductDao();

/**
 * @Author Gabriel
 * @Description //TODO 按照书籍编号查询具体的书籍信息
 * @Date 2018/12/10
 * @Param []
 * @Return java.util.List<com.tecode.myBooks.product.bean.Product>
 */
   public Product getProductById(String productId,Integer state){


       return productDao.getProductById(productId,state);
   }

    /**
     * 获得所有的商品信息
     */
    public List<Product> getBookList(Integer state){
        return  productDao.getBookList(state);
    }
    
    /**获得指定页面的Page对象
     * @Author Gabriel
     * @Description //TODO 
     * @Date 
     * @Param 
     * @Return
     * 需要的参数：
     *          需要确定需要展示第几页的内容  pageNo;
     *
     */
    public Page<Product> getProductPage(long pageNo,Integer state){
        //1.构建需要返回的Page<Product>  对象
        Page<Product> page = new Page<Product>(pageNo);

        //获得当前查询条件下的总记录数。
        long totalPageSize = getBookList(state).size();
        page.setTotalPageSize(totalPageSize);

        //获得到就记录总数后，总页码就确定了，还需要判断请求的页码是否合法。
        page.setPageNo(pageNo);

        //获得没有显示的内容
        List<Product> pageProduct =productDao.getBookPage((page.getPageNo() -1) * page.getPageSize(),page.getPageSize(),state);

        page.setList(pageProduct);

        return  page;
    }

    public List<Code> getCodeStateList(int codeid) {

        return  productDao.getCodeStateList(codeid);
    }
}
